using Microsoft.EntityFrameworkCore;
using System;
using Terra.Data.Entities.Identity;

namespace Terra.Data.SeedData.IdentitySeedData;

/// <summary>
/// 用户角色关联种子数据提供者
/// </summary>
public class UserRoleSeedData : ISeedDataProvider
{
    /// <summary>
    /// 配置用户角色关联种子数据
    /// </summary>
    /// <param name="modelBuilder">模型构建器</param>
    public void Configure(ModelBuilder modelBuilder)
    {
        // 为管理员用户分配超级管理员角色
        modelBuilder.Entity<UserRole>().HasData(new UserRole
        {
            Id = Guid.NewGuid(),
            UserId = UserSeedData.SystemUserIds.AdminUserId,
            RoleId = RoleSeedData.SystemRoleIds.AdminRoleId
        });
    }

    /// <summary>
    /// 获取提供者优先级（在用户和角色种子数据之后）
    /// </summary>
    public int Order => 30;
}